home *** CD-ROM | disk | FTP | other *** search
- Path: news.larc.nasa.gov!amiga-request
- From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
- Subject: v91i017: Mandel 1.0 - yet another mandelbrot, Part01/04
- Reply-To: dm@stekt.oulu.fi (Hannu Helminen ti)
- Newsgroups: comp.sources.amiga
- Message-ID: <comp.sources.amiga:v91i017@ab20.larc.nasa.gov>
- Date: 18 Feb 91 22:25:42 GMT
- Approved: tadguy@uunet.UU.NET (Tad Guy)
- X-Mail-Submissions-To: amiga@uunet.uu.net
- X-Post-Discussions-To: comp.sys.amiga.misc
-
- Submitted-by: dm@stekt.oulu.fi (Hannu Helminen ti)
- Posting-number: Volume 91, Issue 017
- Archive-name: applications/mandel-1.0/part01
-
- [ uuencoded executable, icons, and library enclosed ...tad ]
- [ also, one source file was split to allow for posting. ...tad ]
-
- This is yet another mandelbrot for amiga, but this one is quite
- fast. It also has a cute graphical user interface.
- Freely distributable. Source included.
-
- Author: Hannu Helminen
- dm@stekt.oulu.fi
-
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 4)."
- # Contents: iff.library.uu mandel.doc mandel.doc.uu mandel.info.uu
- # mandel.uu source source/gui.asm.ae source/iff.i source/macros.i
- # source/mbrot.i source/pipe.asm
- # Wrapped by tadguy@ab20 on Mon Feb 18 17:25:39 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'iff.library.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'iff.library.uu'\"
- else
- echo shar: Extracting \"'iff.library.uu'\" \(3334 characters\)
- sed "s/^X//" >'iff.library.uu' <<'END_OF_FILE'
- Xbegin 666 iff.library
- XM```#\P`````````#``````````(```(>``````````````/I```"'F`$0TA7M
- XM(4/Z`(`L>``$3J[^:"Q`3J[_Q"(`0?H`/B0(=BU.KO_0(DXL>``$3J[^8G`%Q
- XM3G5*_````#0```((@!`)`0```$X```!:````E&EF9BYL:6)R87)Y`$E&1B`Q;
- XM-BXQ("@P,2U$96,M,3DX."D@8GD@0VAR:7-T:6%N($$N(%=E8F5R"@!D;W,N)
- XM;&EB<F%R>0`````Z````I````.0```$0```!/@```8H```'"```"!@```@@`G
- XM``+````"W@```P0```,4```#6```!&(```1Z```(`@``""````(0_____^``?
- XM``@)`,````H```!.X```#@8`T```%``0T```%@`!P```&````%H`````2.?`9
- XMQ"I`*T@`(D/Z_VQP'TZN_=@K0``H0>T`+""(6)!"J``$(4@`"$S?(P-.=4CGJ
- XM0.8J3F$`!GYF/'`6<@$L>``$3J[_.DJ`9RPD0)/)3J[^VB5```Y"J@`20>T`+
- XM+")*3J[_"E)M`"`(K0`#`"8@#4S?9P).=7``8/9(YP`F*DYA``8R9Q0D0")`+
- XM+'@`!$ZN_P1P%B)*3J[_+DS?9`!P`%-N`"!F"@@N``,`)F<"80).=4CG(`8J_
- XM3DIM`"!G"@CM``,`)G``8"HB32QX``1.KO\$(FT`*$ZN_F(D+0`B<``B33`M&
- XM`!"2P-!M`!).KO\N(`),WV`$3G5(YSXF?/]@!DCG/B8L`"I.3^__]'H`(@@DR
- XM/````^TL;0`H3J[_XB@`9@1Z$&!P(@0D#W8,3J[_U@R71D]236<$>A-@4"(&)
- XM:@YR`0RO.%-66``(9@)R`W0,)B\`!-2#(`(L>``$3J[_.DJ`9@1Z$F`D)$`D_
- XMPB($)`I0@EB"+&T`*$ZN_]9*@&H$>A%@"$S7``=(T@`'(@0L;0`H3J[_W"`%M
- XM9P9A``5$8`9A``4R(`I/[P`,3-]D?$YU2.<`!BI.(`EG"B`A+'@`!$ZN_RYA1
- XM``4.3-]@`$YU(&D`!$/I``S1R;"19Q0B*0`$4H$(@0``0_$8"+/(9>J3R2`)*
- XM3G4@/$)-2$1A`/_29P)0@$YU2.<X("1((#Q#34%080#_O$J`9RH@0%B(*!B)8
- XM_``#2,0@!%.$<@!T`'8`$A@4&!88Z4GH2X)"@D,TP5',_^A,WP0<3G5(YS\^'
- XM3^_^M"I.)D@H20RL24Q"30`(9P9P&&```+)A`/^,9@9P&6```*8D0$SK`/\`S
- XM"$C7`/]T`!0J``BT*P`%8P9P&V```(@@/$)/1%DB3&$`_S1F!'`:8'0@0%B(T
- XM(!A)\`@`$"H`"F8&3?H`<F`.#````6<$<!Q@5$WZ`&A^``PJ``$`"5?'>``X#
- XM$MA\``_FC`B$``!Z`#H3?``\*P`"4T930C8")$\@!")23I;;FE'+__9*!V<(Z
- XM(`1#[P`@3I:QS&0$4<[_WF$``\)@!&$``\A/[P%,3-]\_$YU$MA1R/_\3G4_B
- XM`G(`$AAK"A+84T!1R?_Z8`Q$`108$L)30%')__I*0&[@-!].=4CG.`!R`'0`U
- XM-A$X*0`"80``"$S?`!Q.=4CG/SZ>_`$,*DXL""9)*$\_00$$/T(!!@B#```_9
- XM0P$(/T0!"BC\1D]237X\*,<H_$E,0DTH_$)-2$1^%"C'&4``"D(L``E"+``+V
- XM0FP`#$*L``0Y?`H+``X9:P`%``CG2SB#.4,`$#E$``(Y1``2+WQ#04U'`"A^%
- XM!"]'`"P@3&$``UH(K``'``IG!`C```LO0``P+WS____X`#@@"F=$0^\`-"+\C
- XM0TU!4'`!<@$2*P`%XV@T`,#\``-4@`)`__PBP%-",!KI2!-```+H2`(``/`32
- XM0``!Z$@"``#P$H!625'*_^(B!B0\```#[BQM`"A.KO_B+@!G``"P("\`.-&OS
- XM``0B!R0/=D36KP`X+&T`*$ZN_]!*@&L``)!*+``*9@9A``"B8`1A``$D2H!KV
- XM>B8`5H/&/`#\+T,!`->O``26@$J#9Q0B!T*G)`\L;0`H3J[_T%B/2H!K4"('X
- XM=`!V_RQM`"A.KO^^(@<D#W8\UJ\`."QM`"A.KO_02H!K+$'O`/P@O$)/1%DBS
- XM!R0(=@@L;0`H3J[_T$J`:Q`B!RQM`"A.KO_<80`!R&`2(@=G""QM`"A.KO_</
- XM<!1A``'`WOP!#$S??/Q.=4CG/CA)[P`DGOP`)#`L`0AR`!(K``7`P3(L`0K`U
- XMP2]``"`R+`$&PM-P`#`L`032@$'K``@B3W`')!C4@2+"4<C_^'8`>`!Z`#H3#
- XM%BL`!39#-BP!"#@L`0I31%-+)$\L"R(')!(L;0`H3J[_T$J`:P[;FE'._^Q1V
- XMS/_D("\`(-[\`"1,WQQ\3G5(YSXX2>\`))[\`21"KP$@,BP!!L+3<``P+`$$_
- XMTH!!ZP`((D]P!R08U($BPE'(__AV`'@`>@`Z$Q8K``4F0S8L`0@X+`$*4T13;
- XMBR1/+`LP`R!20^\`(&$VT:\!("('0^\`("0)+P,F`"QM`"A.KO_0)A]*@&L.X
- XMVYI1SO_44<S_S"`O`2#>_`$D3-\<?$YU2.<P,$7P``!V`&%,L'P``VT05(,2`
- XM$-#`4T!$`!+`$L%@*B9(=`!2`FL04HBQRFP,82:P?``#;>Y@`G1_($O6@E*#B
- XM4T(2PA+84<K__+'*;;H@`TS?#`Q.=2\(<`$2&+(89@RP?`"`;`920+'*;?`@J
- XM7TYUD\DL>``$3J[^VB(`("T`+"!`(!!G"+*H``YF]"`(3G5AWF<$0J@`$G`!8
- XM3G4O`B0`8<YG!"%"`!(D'W``3G5(YP`&*DYANDJ`9PX@*``20J@`$DS?8`!.3
- XM=7#_8/8O"B1)(#Q#04U'80#ZLF<(($`@*``(8!@B2F$`^LAG$"!`81`,*``&)
- XM``AM!`C```LD7TYU<``,*``$``AN"@Q0`8!O!`C```\,:`$8``)M!`C```).Y
- XM=0`````#[````!D`````````-@```#H```!"````1@```$H```"8````G```S
- XM`*````"D````J````*P```"P````M````+@```"\````P````,0```#(````\
- XMS````-````#4````V````-P```#N```!"`````````/R```#Z@````````/RR
- X,```#ZP````````/RC
- X``
- Xend
- Xsize 2352
- END_OF_FILE
- if test 3334 -ne `wc -c <'iff.library.uu'`; then
- echo shar: \"'iff.library.uu'\" unpacked with wrong size!
- fi
- # end of 'iff.library.uu'
- fi
- if test -f 'mandel.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mandel.doc'\"
- else
- echo shar: Extracting \"'mandel.doc'\" \(14242 characters\)
- sed "s/^X//" >'mandel.doc' <<'END_OF_FILE'
- X
- X-----------------------------------------------------------------------------
- X
- X Version history
- X
- X v0.50 First numbered version. Most bugs I've found are fixed.
- X v0.60 Workbench interface added.
- X v1.00 First public release.
- X
- X-----------------------------------------------------------------------------
- X
- X BUGS
- X
- X - Not very smart handling of AUTOCRAWL
- X - If invoked with too little memory, 56 bytes will mysteriously
- X disappear
- X - Window title bar may get trashed if moved too high
- X
- X-----------------------------------------------------------------------------
- X
- X Copying licence:
- X
- X This program is copyright 1990 by Hannu Helminen. However, you may
- X freely distribute it provided that this package is left intact and no
- X charge is taken. You are also licenced to use parts of the code in your
- X programs provided that
- X
- X 1) New versions are clearly marked as such
- X 2) You give credit where credit is due (me)
- X
- X I will not guarantee anything about this program. It seems quite
- X reliable to me, though.
- X
- X-----------------------------------------------------------------------------
- X
- X Package includes:
- X
- X mandel Main proggie
- X mandel.doc This file
- X iff.library Used when saving pictures. Place in libs: directory.
- X
- X source/gui.asm Graphical user interface
- X source/brot.asm This takes care of the actual drawing
- X source/pipe.asm A package of fifo routines, as needed by brot
- X
- X source/macros.i General macros
- X source/mbrot.i brot-specific include file, including my own structure
- X source/iff.i Needed to use iff.library
- X
- X-----------------------------------------------------------------------------
- X
- X
- X
- X OVERVIEW
- X
- X There are quite a few Mandelbrot programs for Amiga, perhaps to the
- X extent that I should have named my program "yamb" instead of "mandel".
- X (Yet Another MandelBrot)
- X
- X I hope though that there are enough reasons to satisfy the existence of
- X this program. Namely, it was designed with three goals in mind: first,
- X speed. Secondly, speed. And last but not least, speed.
- X
- X Of course, most Mandelbrot programs draw nice-looking pictures, if only
- X you can wait for ten minutes or even more for them to be complete.
- X Increase the number of iterations and you will have to wait for hours,
- X unless you are one of those lucky guys with a 60-MHz 68040-equipped
- X A3000's... The main reason for that slowness is the floating point math
- X most programs use.
- X
- X The first version of this program was quite ugly: coded partly in
- X Basic, partly in 68000 machine language, it was a mess of a code. Its
- X optimized core used 32-bit fixed point math but was still relatively
- X slow. After writing it, I forgot it for years.
- X
- X Then someone in alt.fractals told about a new algorithm called contour
- X crawling that produces fast images of Mandelbrot set. I adopted the
- X idea and rewrote the program to use it, this time completely in machine
- X language. It turned out to be fast (within minutes); that is because it
- X does not need to iterate all pixels. And the drawing was visually
- X attractive, so it suits well for interactive use.
- X
- X After imploying a 16-bit iteration for lower resolutions, I found I had
- X written the fastest Mandelbrot program I had ever seen. (Ok, forget
- X that little transputer...) I cannot pretend to have seen even all Amiga
- X ones, though, so there may already be a faster one. If so, please tell
- X me that all this code was in vain.
- X
- X
- X
- X USAGE
- X
- X Start from CLI by typing `mandel', or click the icon in Workbench. The
- X program will then immediately begin to draw the Mandelbrot set. Various
- X options exists, however, to modify how, where and when the image will
- X be drawn. Use CTRL-C to abort a draw in progress, and another CTRL-C to
- X abort the program.
- X
- X From CLI: Enter the options after the command, e.g.
- X
- X mandel -i1000 -j -sram:Picture
- X
- X Type `mandel ?' to see a brief summary of the options.
- X
- X From Workbench: Select mandel icon, select `info' from the `Workbench'
- X menu and enter options in the TOOL TYPES array, e.g.
- X
- X I=100
- X FLAGS=j
- X SAVE=ram:Picture
- X
- X
- X The options are listed below. # is a shorthand for a number.
- X
- X CLI WorkBench
- X
- X -x# X=# These determine the point (z = x + yi) in the complex
- X -y# Y=# plane you will see right in the center of your monitor.
- X They are in the range -4 to 4.
- X
- X -m# M=# This is a logarithmic quantity that represents the
- X magnification of the image. 2^(-m) determines the
- X distance between two lo-res pixels in complex plane.
- X Default is 6, maximum is 29.
- X
- X -i# I=# Iterations. Self-explanatory? No? The greater the
- X number, the more accurate pictures mandel will draw.
- X For further information, refer to APPENDIX A.
- X The maximum number of iterations is 65535.
- X
- X -jx# JX=# These determine a constant (c = jx + jy i) that is used
- X -jy# JY=# when iterating a Julia set. Each c will produce a
- X different set. See APPENDIX A. These, too, have a range
- X from -4 to 4.
- X
- X -sname SAVE=name This determines a filename for saved pictures.
- X
- X If mandel is operated interactively (g flag is set),
- X the user can save pictures by pressing CTRL S. The
- X standard filename is `mandel.picture', but can be
- X overridden by this option. If many pictures are saved,
- X a number is added at the end to distinguish the files
- X from each other.
- X
- X If mandel is in non-interactive use (x flag is set),
- X this options specifies that the image must be saved
- X upon exit, and determines the name for it. Note: if
- X this option does not exists, no image will be saved.
- X
- X -l FLAGS=l Normally mandel determines itself whether it should use
- X -h FLAGS=h 16 or 32 bits of precision, as denoded by (a). There
- X -a FLAGS=a are certain, limited circumstances when you need to set
- X the precision explicitely to 16 (l) or 32 (h) bits. In
- X particular, Julia sets that have a complex structure
- X near origo may produce inaccurate images unless 32 bits
- X are used.
- X
- X -c FLAGS=c You can enable (c) or disable (w) the crawling if you
- X -w FLAGS=w wish, default is (p), which means to crawl whenever
- X -p FLAGS=p possible. Currently non-connected Julia sets are not
- X crawled because they *could* produce inaccurate
- X results. Future versions might add more sanity checks
- X to this.
- X
- X -x FLAGS=x When the (x) flag is used, the programs exits
- X -g FLAGS=g immediately after the first image is drawn. Default is
- X (g) which means to prompt the user with a
- X requester-like window (See below). The x flag is
- X intented for non-interactive use, for example
- X continuous zooms that are achieved via scripts.
- X
- X -m FLAGS=m Whether you want to draw Julia (j) or Mandelbrot (m)
- X -j FLAGS=j sets. See APPENDIX A.
- X
- X
- X NOTE: In Workbench, if multiple FLAGS are used, they *must* be
- X combined in a single FLAGS entry, e.g.
- X
- X FLAGS=apgx
- X
- X In CLI, flags *must not* be combined, so do not try `-apgx'
- X instead of `-a -p -g -x'.
- X
- X
- X
- X GRAPHICAL USER INTERFACE
- X
- X When mandel is invoked with the -g option, after the first image is
- X drawn, a requester-like window will pop in. A grid will also be
- X displayed, indicating the centerpoint and borders of the next image.
- X Screen title bar will show coordinates of the mouse position.
- X
- X You can then set the centerpoint by clicking in the image or entering a
- X value in the string gadgets labeled `X' and `Y'. Magnification and
- X iterations can be set in the gadgets `M' and `I', respectively.
- X
- X A new quantity can be set using the `Z' gadget: zooming. As its name
- X implies, this determines which portion of the current image will be
- X shown in the next one. This is a signed number that will be added to
- X magnification, thus set z=0 for 100% zooming, z=1 for 50%, z=-1 for
- X 200% etc. This can also be set by pressing the right mouse button and
- X moving it over the image.
- X
- X The program draws images in one of three modes: ZOOM, DRAW and RESET.
- X ZOOM means zooming to the size shown by the grid. DRAW will take the
- X numbers from the requester and draw according to them (used for example
- X to redraw the same picture, or to quickly enter a very deep
- X magnification level)
- X
- X As setting zoom in DRAW mode makes as little sense as setting
- X magnification in ZOOM mode, these modifications will immediately change
- X the draw mode, too. The third mode, RESET, will return the
- X magnification and centerpoint to normal. The mode can be changed by
- X respective gadgets.
- X
- X Clicking MAND or JULIA will change the set type to Mandelbrot or Julia.
- X The magical constant c for Julia sets (See APPENDIX A) can be set as
- X follows: Make sure you are in MAND mode. Then select the point c by
- X either clicking on the image or entering it in the X/Y-gadgets. Then
- X click JULIA gadget and select whatever centerpoint you wish your image
- X to have.
- X
- X Alas, window close gadget only removes the requester window, screen
- X title and grid in order to let you view the image. Normal operation is
- X resumed by pressing either mouse button.
- X
- X Quit the program by double-clicking the QUIT gadget or draw a new set
- X by double-clicking either in the image or one of the gadgets ZOOM,
- X DRAW, RESET.
- X
- X
- X
- X AUTHOR
- X
- X Hannu "The DM" Helminen
- X Perkkio
- X 85900 REISJARVI
- X FINLAND
- X
- X dm@stekt.oulu.fi (for the next few years, I hope)
- X
- X
- X
- X THANKS
- X
- X Thanks to
- X
- X T. Saarinen for extensive beta-testing
- X
- X 'LS' Hautamaki for not-so-extensive testing
- X
- X J.M. Jarre who was in great help during long nights of programming
- X
- X B. Mandelbrot who invented the set that carries his name
- X
- X
- X
- X
- X
- X APPENDIX A: A mathematical definition of Mandelbrot and Julia sets.
- X
- X
- X A point z = x + y i is said to be in the Mandelbrot set if
- X 0
- X
- X 2
- X z = z + c does not go to +-oo (infinity) when n -> oo
- X n+1 n
- X ____
- X where c = z . ( i = ,/ -1 so z, c are complex numbers )
- X 0
- X
- X
- X A point z = x + y i is said to be in the Julia set c if
- X 0
- X
- X 2
- X z = z + c does not -> oo when n -> oo
- X n+1 n
- X
- X
- X NOTE: There are an infinite number of Julia sets, each corresponding to
- X one value of c. c is also related to a point in the Mandelbrot set.
- X (originally the Mandelbrot set was the set of c's that will produce a
- X *connected* Julia set.) Note also that the Julia set looks similar to
- X the surroundings of that point in the Mandelbrot set from which the
- X Julia set was derived.
- X
- X Becausese these calculations would take a considerable amount of time
- X with any contemporary computer, they are approximated by a finite
- X number of iterations (typically 100 or more). An usual test for a point
- X z going to infinity is to test whether or not | z | < 2. And since few
- X computers can calculate with complex numbers, we can rewrite the
- X equation (z -> z**2 + c) in a C-ish style program using only real
- X variables z = x + y i:
- X
- X i = max_iterations;
- X
- X while (i > 0 && x**2 + y**2 < 4) {
- X
- X tmpx = x**2 - y**2 + x0;
- X tmpy = 2 x y + y0;
- X x = tmpx;
- X y = tmpy;
- X i--;
- X
- X }
- X
- X if (i=0) inside (); else outside();
- X
- X If you are a first-time user of any Mandelbrot program, I might suggest
- X that you study the edge of the black area, because that is where the
- X most interesting parts of the set are. (The coloured areas do not
- X actually belong to the set, and the interior is, of course, all
- X black...)
- X
- X
- X
- X APPENDIX B: The contour crawling method
- X
- X This method works by finding an edge of an area of uniform color, then
- X crawling its way through the edge until starting point is reached. The
- X interior is then assumed to be of same color. This is of course true
- X for the ideal set, but because the image is sampled to a finite set of
- X pixels, errors *may* occur. (Haven't seen one so far, though.)
- X
- X Non-connected Julia sets must not be crawled in the strict mathematical
- X sense. However, most of the time mandel produces correct pictures even
- X then. So it is quite safe to use the -c option of mandel.
- X
- X
- X
- X APPENDIX C: Compilation
- X
- X Assuming you have a68k v2.61 or higher and blink, the following
- X steps are needed to compile a working executable of mandel:
- X
- X a68k gui.asm -q500 -iinclude:
- X a68k brot.asm -q200 -iinclude:
- X a68k pipe.asm -q100
- X blink gui.o brot.o pipe.o to mandel lib amiga.lib
- X
- X where include: is assigned to standard assembly include directory.
- X
- X NOTE: if you have a68k v2.42, gadget arrow images will not be marked as
- X going to CHIP ram. This will give you strange-looking images unless:
- X
- X 0) You have only CHIP ram (poor chap)
- X
- X 1) You use FastMemFirst, FixHunk, ATOM etc. kludges
- X
- X 2) Modify the code: allocate some CHIP-mem and CopyMem() the images
- X there. This is a kludge, however.
- X
- X 3) Get v2.62 somewhere (e.g. disk 314 from Fred Fish's
- X wonderful collection.)
- X
- X
- X
- X APPENDIX D: How to use brot with your own programs?
- X
- X Just pass the address of a valid mb-structure in a0 (see mbrot.i),
- X `jsr MandelBrot' and `XREF MandelBrot' somewhere in your code and
- X (b)link your proggie with brot.o and pipe.o. The RastPort you use
- X *must* have valid TmpRas and AreaInfo structures attached to it.
- X AreaInfo should carry as many vectors as possible (no more than 6553,
- X however, since that seems to be a maximum)
- X
- X
- END_OF_FILE
- if test 14242 -ne `wc -c <'mandel.doc'`; then
- echo shar: \"'mandel.doc'\" unpacked with wrong size!
- fi
- # end of 'mandel.doc'
- fi
- if test -f 'mandel.doc.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mandel.doc.uu'\"
- else
- echo shar: Extracting \"'mandel.doc.uu'\" \(585 characters\)
- sed "s/^X//" >'mandel.doc.uu' <<'END_OF_FILE'
- Xbegin 666 mandel.doc.info
- XMXQ```0``````?@`1`#``%@`$``,``0#!--@`````````````````````````>
- XM````!,,`P4(8`````````#(````&```````````````````````P`!8``@#$F
- XM2C@#``````#_______^#_______)_____W_)G)1.1AG)*92U2S/)*92TRSF#A
- XMG,RV2X/_____________________________________________________$
- XM_________S___QG$LP___G*<93___Y&<XS___CC$\9__________________-
- XM______\```````!\```````V`````(`V8VNQN>8VUFM*M,PVUFM+-,9\8S-)9
- XMM'P``````````````````P``````#8``````!H``````,P`````&68`````,D
- XMR````,`><.8[3/`S(8UCFL`!@&YC',```<<[#F``````````````````````P
- X9```````3<WES.G5T:6QI=&EE<R]M;W)E`,<[L
- X``
- Xend
- Xsize 385
- END_OF_FILE
- if test 585 -ne `wc -c <'mandel.doc.uu'`; then
- echo shar: \"'mandel.doc.uu'\" unpacked with wrong size!
- fi
- # end of 'mandel.doc.uu'
- fi
- if test -f 'mandel.info.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mandel.info.uu'\"
- else
- echo shar: Extracting \"'mandel.info.uu'\" \(951 characters\)
- sed "s/^X//" >'mandel.info.uu' <<'END_OF_FILE'
- Xbegin 666 mandel.info
- XMXQ```0``````(``/`#``%@`&``,``0#!W_@`PW4X````````````````````[
- XM`````_X`P3*8`````/___]0````$```````````````````````P`!8``@`!J
- XM83`#``````#____________________________________^?______^?___M
- XM__^`!?____\``?____X``/___P0``/___````?___````?___P0``/____X`N
- XM`/____^``?____^`!?_____^?______^?___________________________<
- XM______\````````````````````!```````#P``````'X`````#_^0````'_>
- XM_X``!`?__X``!____X``#____X``?____P``?____P``#____X``!____X``@
- XM!`?__X````'__X````#_^0`````'X``````#P``````!````````````````K
- XM`````````#``%@`"``%B.`,``````/___________________________[__/
- XM_____Y_^_____P?=_____X8"'_____@#_____0:W____T`/_____X`/_____V
- XMX`?_____X`?_____X`O____P8+____[@'_____Q`,?____\UX/____]__W__K
- XM_____?___________________P```````````````````````````?``````<
- XM`___@````___P````___\```'___^```?___````___X````___@```!__^`8
- XM```'__^````?__\```#___\``!____````___^````/__\````#__\``````8
- X5!X````````````````````````$`(
- X``
- Xend
- Xsize 651
- END_OF_FILE
- if test 951 -ne `wc -c <'mandel.info.uu'`; then
- echo shar: \"'mandel.info.uu'\" unpacked with wrong size!
- fi
- # end of 'mandel.info.uu'
- fi
- if test -f 'mandel.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mandel.uu'\"
- else
- echo shar: Extracting \"'mandel.uu'\" \(22144 characters\)
- sed "s/^X//" >'mandel.uu' <<'END_OF_FILE'
- Xbegin 666 mandel
- XM```#\P`````````&``````````4```?[```$'D```/(```!'````/```````:
- XM``/I```'^TCG?_XF2#8`D\DL>0````1.KO[:($`@*`"L9RI",S#_0KD````H#
- XM($#1R-'((&@`$-'(T<@0&"/(````+$B`,\````!.8#I'Z`!<($M.KOZ`($M.G
- XMKOZ,(\`````H($`@*``D9QP@0"00(&@`!"/(````+'+_4D%*&&;Z,\$```!.1
- XM0_D```P6<`!.KOW8(\`````(9AI(YP$&+CP``X`'+'@`!$ZN_Y1,WV"`8``'=
- XM.DJY````*&<2(@(L>0````A.KO^"+'D````$0_D```P$<`!.KOW8(\`````$)
- XM9AI(YP$&+CP``X`$+'@`!$ZN_Y1,WV"`8``&4$/Y```+\W``3J[]V"/`````]
- XM`&8:2.<!!BX\``.``BQX``1.KO^43-]@@&``!AA!^0``##MP`4/Y````RG(`/
- XM3J[^1$H`9QI(YP$&+CP`!(`5+'@`!$ZN_Y1,WV"`8``%W$7Y````\A5\``0`*
- XM"$(J``E"J@`*%7P````.</\3_``!```!%4ZN_K9*`&L`!:050``/D\E.KO[:)
- XM)4``$$'J`!0@B%B00J@`!"%(``A!^0```,HA2@`.0KD````<($M)^0```'PY9
- XM?````!PY?````!XY?`$_`"`Y?`#_`"(3_``````!%3E\`&0`*!E\`!@`+!/\D
- XM``$```$4$_P``````19".0```1=">0```$Q".0```1@C_``!``````!((_P`Q
- XM!@``````."/\`````````$`C_`````````!$*7P``````!0I?```````&$/YR
- XM```64BE)`"0Y?``>`"I*N0```"AG``"2+'D````$0_D```PB<`!.KOW82H!FC
- XM#!/\``@```$58```[BQ`('D````L3J[_LDJ`9@H3_``)```!%6`\*D!%^0``1
- XM"<9'^0``">9*$V<D(&T`-B)+3J[_H"):2H!G!B!`3I%G!DH;9OQ@X!/\``H`P
- XM``$5($U.KO^F(DXL>0````1.KOYB2CD```$59@`$0&!^1_D```Q()CP```+UG
- XM2A!G;@P0`#]G4A/\``(```$51_D```Z()CP```"U$!AG4`P``"!G]@P```AGZ
- XM\`P``"UF*!`80_D```FX1?D```F$#```864$!```("I:L!EF!DZ59P9@QDH1K
- XM9O`L>0````A.KO_$(@`D"TZN_]!@``.L0?D```$`+'D````$3J[_.A/\``,`8
- XM``$5(\`````09P`#BB1`(\H```$Z(\H```%J1^H`+$'Y```!'$ZN_S03_``$7
- XM```!%2/`````%&<``U(@0"1H`#(HBB!+0_D```#`<"`L>0````!.KO]`(#P`,
- XM`"@`<@(D`2QY````!$ZN_SH3_``%```!%2/`````(&<``P!'^0```*HB0"!+M
- XM(`(L>0````!.KOXL)4L`#"`\``!__7(`+'D````$3J[_.B/`````)&<``K1'\
- XM^0```+(@2R)`(#P``!F9+'D`````3J[^YB5+`!`3_``````!%2`Y````."(\?
- XM`!T``+"!8P(@`2(\``4``+"!9`(@`2/`````.&$`$.(C^0```#@````\($Q.G
- XMN0``&@!*.0```11G``(.80`&A$'Y```!3"QY````!$ZN_S0CP````!AG``($4
- XM'CD```$6$_P``@```18@.0```$!A``F,(#D```!$80`)RB`Y````.&$`"K`P2
- XM+``H80`*<B`Y````2&$`"?83QP```19A``L*80`+:F$`#WYF``&(+'D````$U
- XM#((```(`9E(@>0```!@CZ``$```!3$ZN_[A"N0```!@@>0```!!P`$ZN_N9AU
- XM``*X80`/0&8``5X,@@````AF\&$``SX@>0```!!P`2QY````!$ZN_N9@`/\TS
- XM#((````09@9A``X.8(H,@@````AF*`Q#`&AF$&$`#0AG`/]V:P`!`&```)H,&
- XM0P!I9@QA``N$9@``[F``_UP,0@`@9B(R+0`F,`$"0$``9PQA``7,9@``T&``&
- XM_T9A``:$:V)F``#"#((```0`9E(,0P`A9DP(!``#9T8@>0```!@CZ``$```!.
- XM3$ZN_[A"N0```!@@>0```!!P`$ZN_N9A``'L80`36&$``GX@>0```!!P`2QY%
- XM````!$ZN_N9@`/YT8`#^UB!Y````&"QY````!"/H``0```%,3J[_N&$``:X,O
- XM.0`````!%F<L##D``0```19G+B/\``8``````#@C_`````````!`(_P`````P
- XM````1&``_=8@.0```$C1N0```#A@`/W&('D````8+'D````$3J[_N&$``51**
- XM.0```11F#$HY```!&&<$80`2L"!Y````$'``+'D````$3J[^YB)Y````)"`\G
- XM``!__2QY````!$ZN_RXB>0```"`@/```*``L>0````1.KO\N+'D````$('D`A
- XM```43J[_N"!Y````$$ZN_[Y!^0```/(0*``/+'D````$3J[^L$/Y````RDZNQ
- XM_CXB>0````!.KOYB(GD````$3J[^8DHY```!%6=X+'D````(2KD````H9QA!^
- XM^0``#STB""0\```#[DZN_^)*@&=48`1.KO_$*``B!"0Y````+#8Y````3DC#D
- XM3J[_T"($$#D```$52(#E2$'Y```*`"!P```D"';_4H-*&&;Z3J[_T$JY````?
- XM*&<,<F1.KO\Z(@1.KO_<+'D````$(GD````(3J[^8B`Y````*&<*3J[_?")`6
- XM3J[^AG``$#D```$59P)P%$S??_Y.=4HY```!%V<``(1(Y^#B+'D````$('D`@
- XM```4)&@`,C`Y````4#(Y````4B)Y````7&%<,#D```!4,CD```!6(GD```!@U
- XM84@P.0```%0R.0```%HB>0```&AA-#`Y````6#(Y````5B)Y````9&$@,#D`N
- XM``!8,CD```!:(GD```!L80Q".0```1=,WT<'3G4@2B0)9P1.KO^43G5A`/]DX
- XM##D``````19G'`PY``(```$69P`"="`Y````.+"Y````/&8``F1(Y__B(#D`%
- XM``!P(CD```!T$_P``0```1<CP````'`CP0```'0D/```@`#0@M*"*``J`4A`S
- XM2$%T`"QY````!$/Y```(`"!Y````%"1H`#*P;``<;`PP+``<0_D```B@4D*PE
- XM;``@;PPP+``@0_D```C44D*R;``>;`PR+``>0_D```D(4D*R;``B;PPR+``B[
- XM0_D```D\4D(,0@`!8PA"N0```%Q@/`````4#/!````4B!*(\D```!<3J[_4
- XME#`L`""0;``<)CD```!(##D``0```19F`G8`!H,``0``:P`!:'(`=`!A``PJE
- XM+``P+``BD&P`'F$`#!PN`"0$)@64AI:'V(;:ATA"2$-(1$A%?``P+``<,BP`$
- XM(+1`;`8T``C&``"T06X``2*X06\&.`$(Q@`!N$!M``$2,"P`'C(L`"*V0&P&>
- XM-@`(Q@`"MD%N``#ZND%O!CH!",8``[I`;0``ZC/"````5#/#````5C/$````^
- XM6#/%````6DCG`!Q#^0``"#!'^0``"&A)^0``"$Q+^0``"(0(!@``9PA#^0``X
- XM"*`F20@&``%G"$GY```(U"I,"`8``F<(0_D```D(*$D(!@`#9PA'^0``"3PJ5
- XM2T8&$`8"```%9@*3R1`&`@``"68"E\L0!@(```9F`IG,`@8`"F8"F\T@2B/)&
- XM````8&<(,`(R`TZN_Y0B2R!*(\D```!H9P@P`C(%3J[_E"),($HCR0```&1GF
- XM"#`$,@-.KO^4(DT@2B/)````;&<(,`0R!4ZN_Y1,WS@`8!A"N0```&!"N0``+
- XM`&A"N0```&1"N0```&Q,WT?_3G5(Y_@`)"P`#"@Y````0)BL``0,@@`!``!E"
- XM!N**XHQ@\HC"(`1"0(#"2$`P!"0L`!`H+``(F+D```!$#((``0``90;BBN*,%
- XM8/*(PB($0D&"PDA!,@1(0$A!(\````!P(\$```!T3-\`'TYU`D&/_R)-80`(Z
- XM\B!I`"(@4`Q!``!G+`Q!``%G2@Q!``)G``"$#$$``V=@80`+@F<$2A!G!#`LW
- XM`"@Y0``H80`#E&!^80`*W&<$2A!G!B`Y````0"/`````0&$`_SQA``)R80#\B
- XMIF!:80`*N&<$2A!G!B`Y````1"/`````1&$`_QAA``*680#\@F`V80`$[F<$=
- XM2A!G!B`Y````2"/`````2&$``KY@&F$`"Y!G!$H09P8@.0```#@CP````#AAI
- XM``-*<`!.=3`!`D`@`&=.`D&/_Q`\```,00`%9PX0/``!#$$`!F<$$#P``A/`8
- XM```!%F$``_(@.0```#`B.0```#0D"B8+(\H````P(\L````T3J[_FDI`9P)P;
- XM_TYU,`$"0!``9QX"08__"*P``@`L#$$`"&<&".P``@`L80`#1'``3G4,00`*3
- XM9B@@.0```#`B.0```#0D"B8+(\H````P(\L````T3J[_FDI`9P)P`4YU`D&/2
- XM_WX`/@%A``"$0_D```#*2$<@/``&&H!*1V<6(#P``8:@#$<`"64*(#P``$X@8
- XM/CS__E)'2$<S?``)`!PC?```````("-``"0CR0```!PL>0````1.KOXR80`'^
- XM,&8*#$(``V>B?@!@`GX!(GD````<3J[^(")Y````'$ZN_B9"N0```!Q*1TYUL
- XM<`!.=4CGP``P!W(!`D!__PQ```!F+"`L``Q(04I':@1$@$2!T;D```!`T[D`I
- XM``!P(#D```!`80``H&$`^M1@``"2#$```68J("P`$$A!2D=J!$2`1('1N0``_
- XM`$23N0```'0@.0```$1A``"V80#ZHF!@#$```F8>(#P``!F92D=J`D2`T;D`@
- XM```X(#D````X80`!?F`\#$```V8>(#P``!F92D=J`D2`T;D```!((#D```!(:
- XM80``LF`8#$``!&822D=J`D2!TVP`*#`L`"AA``$*3-\``TYU2.?A\B1Y````\
- XM&$?Y```!?`@L``(`+&8$*4``%"0`($HB2RQY````!$ZN_QS!0B!K`"(@4"XL3
- XM``QA``580A!A``%*3-]/ATYU2.?A\B1Y````&$?Y```!X`@L``(`+&8$*4``9
- XM&"0`($HB2RQY````!$ZN_QS!0B!K`"(@4"XL`!!A``400A!A``$"3-]/ATYU-
- XM2.?@\B1Y````&$?Y```#^"0`($HB2RQY````!$ZN_QS!0B!K`"(@4!(\`"M*/
- XM@&H&1(`2/``M$,%A``0P0A!A``"Z##D``0```19F'"`Y````/"/`````.&%.`
- XM$_P``````19A``$>8`1A`/D^3-]/!TYU2.?@\B1Y````&$?Y```$V"0`($HBH
- XM2RQY````!$ZN_QS!0B!K`"(@4&$``Y9"$&%83-]/!TYU2.?@\B1Y````&$?YJ
- XM```#&"0`($HB2RQY````!$ZN_QS!0B!K`"(@4&$``YA"$&$B##D``````19F)
- XM#A/\``$```$680``EF`$80#XMDS?3P=.=2!K`")":``(0F@`#"!*(DL@`DZNM
- XM_]8@2R)*E<IP`4ZN_E!.=4CGX/8L>0````0@>0```!@J2$/Y```&/"9)<`).'
- XMKOY$0_D```9H""P``@`L9PX`:0"```P":_]_``Q@#`)I_W\`#`!K`(``#"!-B
- XM(DN5RG("3J[^2B!+(DUP`DZN_E!,WV\'3G5(Y^#V+'D````$('D````8*DA#2
- XM^0``!;@F27`#3J[^1$7Y```%Y$/Y```&$!(Y```!%@P!``%G&@P!``)G*`!K)
- XM`(``#`)J_W\`#`)I_W\`#&`F`FO_?P`,`&H`@``,`FG_?P`,8!(":_]_``P"*
- XM:O]_``P`:0"```P@32)+E<IR`TZN_DH@2R)-<`-.KOY03-]O!V$`]Y).=1`8H
- XM#```*V<(#```+6<(4XAA``:L3G5A``:F9P)$@$YU0CD```$680#_0#`%,@9(C
- XMYP8`2$5(1D)%0D9A``$<3-\`8#/%````>#/&````>DCGP`!A``-63-\``V8``
- XM`/H,@@```!!GW$CGY@!(Y\``D'D```!X:@)$0))Y````>FH"1$%F!$I`9S0T)
- XM+``@E&P`'$A`0D"`PF@"</\T+``BE&P`'DA!0D&"PF@"<O^P06(",`%A``18;
- XM(\````!(3-\``SHY````>#PY````>MI`W$%(14A&0D5"1B(L``PD+``0XHGB;
- XMBN*-2D5K`G(`XHY*1FL"=``CQ0```'`CQ@```'1(14A&80`!LMJ!G((CQ0``-
- XM`$`CQ@```$0@!6$`_#H@!F$`_'P@.0```$AA`/RZ3-\`9TJ"9AYA``)(9AH,Y
- XM@@```!!F$#/%````>#/&````>F``_PQP`$YU+P`CQ0```'`CQ@```'1(14A&(
- XM80`!3"/%````0"/&````1"`%80#[V"`&80#\&F$`]@8@'TYU(#D````P(CD`\
- XM```T)`HF"R/*````,"/+````-$ZN_YI*0&92,\4```!X,\8```!Z80`!ZF90.
- XM#((````09^9(YP8`2$5(1D)%0D9A`/]^3-\`8$J"9AQA``&:9BH,@@```!!F1
- XM#C/%````>#/&````>F#$<`!@$DA%2$9"14)&80#_2G`!8`)P_TYU2.?@`#(\-
- XM)Q!T``*```#__X#!9@1*0F<(!@``,!#`=`%(0$C!@OP`"F;@2D)F!!#\`#!,I
- XMWP`'3G5(Y^``(@!(0&&^$/P`+G0#POP`"DA!!@$`,!#!2$%1RO_P2D%J!&$`X
- XM`.A,WP`'3G5A-D'Y```+V2`%+BP`#&%8$/P`("`&+BP`$&%,0A@@>0```!!!#
- XMZ`!40_D```EP<%!R`$ZN_RA.=2\`,`7*[``,2$5"1<#L``[:@-JL``0P!LSL/
- XM`!!(1D)&P.P`$MR`1(;<K``((!].=4CG_G`4/``K2H!J!A0\`"U$@!#"%#P`1
- XM,`R`(````&4*!(`@````4@)@[A#"$/P`+D/Y````!$7Y````1"9\_____W(`O
- XM%#P`,"89*!HJ`"P!G(2;@VL((`4B!E("8.Z^BR9I__QB!!#"8-H,`@`U90)A(
- XM!DS?#G].=4CG@(`0(`P``"YG^`P``#EF!A"\`#!@[%(03-\!`4YU2.?`P&$DX
- XM9AQ*@F86",``#"QY````!$ZN_L((```,9@1@XG``3-\#`TYU+'D````$=``@D
- XM>0```!0@:`!6$"@`#P'"3J[^C$J`9CP@>0```!@@"&<2(&@`5A`H``\!PDZN=
- XM_HQ*@&8@(GD````<(`EG$B!I``X0*``/`<).KOXL2H!F0L%"3G4B0"0I`!0VK
- XM*0`8."D`&BII`!PZ*0`@/"D`(B1I`"0F:0`H3J[^A@R"```$`&8B#$,`,V8<[
- XM"`0``V<6<`%.=2)Y````'$ZN_B9"N0```!QT`W``3G4P/"``<@!T`"8Y````I
- XM.&%>*4``#"E``!`P+``<T&P`("(Y````0"0L``SB2&0&)@+B@Y*#2D!G!I*"Q
- XM4T!@]BE!``0P+``>T&P`(B(Y````1"0L`!#B2&0&)@+B@]*#2D!G!M*"4T!@B
- XM]BE!``A.=4CG>(!(0TI#9PKB2.)1XE)30V#T2$-!^0```(`X&.-#9!3`Q,+$3
- XMQ,1(0M1!2$'30$A`>`#11$I#9N)(0#`!3-\!'DYU2.=X@'(`2D!K!E)!XTA@E
- XM]DA!0?D```"@=`_C2388>``X`$A$QL#8@V4,``$``4A$:@)21#`$4<K_XB`!%
- XM3-\!'DYU2.?`PBQY````!"!Y````%"!H`%9.KOZ,2H!G*B)`#*D```0``!1FH
- XM&@QI`#,`&&82,"D`&@@```-G"$ZN_H9P_V`03J[^AG``<@!.KO[."```#$S?'
- XM0P-.=4CG?'`F2'(`=@`D/(````!#^0````!%^0```$`0&`P``"MG^`P``"UFQ
- XM!@C#``]@[`P``"YF!@C#``=@X`P``#!E,@P``#EB+`C#``"UB4H#:PQ#^0``3
- XM``!%^0```$`$```Q:[A(@"@1*A+4A=.$4<C_^F"H4XAA3DI#:@)$@2`!"`,`1
- XM`&8"($M,WPX^3G5(YV!`(DAT`'``$A@,`0`P918,`0`Y8A`$`0`P2('`_``*(
- XMT$%T`6#B4XAA#$I"9@(@24S?`@9.=2\`$!@,```@9_A3B"`?3G5A`/\H9PHC^
- XMP````$!P`4YU0CD```$4<`%.=6$`_PYG""/`````1'`!3G5A%F<*(\`````XS
- XM<`%.=0BL``(`+'`!3G5(YV!@)$EA`/]N2$`,&``N9C)R`'0`0D`4&%)`#`(`:
- XM,&4`(`.6/P0^C__U-`9Q(4(00"`#!(03("2$&"_``*8.HP`5.(80#_9@R`+
- XM`!T``&($<@%@!'``(DI,WP8&3G5A`/\49P8Y0``H<`%.=0BL``,`+`BL````]
- XM+'`!3G4(K``#`"P([````"QP`4YU".P``P`L<`%.=0BL``0`+`CL``$`+'`!D
- XM3G4(K``$`"P(K``!`"QP`4YU".P`!``L<`%.=1/\``$```$43G40&`P``&%EV
- XM!`0``"`,``!89@YA`/X(9P8I0``4<`%.=0P``%EF#F$`_?1G!BE``!AP`4YU2
- XM4X@([``"`"QP`4YU0_D```]D$!AG"@P``"!G!!+`8/)3B$(1(\D``!!T80#^Q
- XM@A`\``$3P````1A.=1`89V0,``!A900$```@2'K_\`P``$QG`/\<#```2&<`Q
- XM_R0,``!!9P#_+`P``$-G`/\N#```5V<`_S8,``!09P#_/@P``$=G`/]`#```I
- XM2F<`_W@,``!-9P#^9`P``%AG`/XT6(]P`$YU<`%.=4'Y```/9"0(('D``!!T+
- XM,#D```!,9P9A`/F<0A!2>0```$Q#^0``#"]P`"QY````!$ZN_=A*@&=6+$`@U
- XM>0```!`D:``P)&H`!")H`%@@0C(L`!PT+``>-BP`(#@L`"+F25Y#YDN609A"-
- XM4D-21'`!3J[_N"0`(DXL>0````1.KOYB2H)F$A/\``<```$58`@3_``&```!6
- XM%4YU2.?__BA(+'D````$0_D``!_%<`!.KOW82H!G``",+$`(+``#`"QG(`CL%
- XM````+`RL``0````,91`,K``$````$&4&"*P````L""P`!``L9R@([``!`"P(<
- XM+``"`"QG&BPL`!0N+``8-BP`*&$``PY*0VL&"*P``0`L*E0B33`\``!.KOZJ1
- XM(DTP+``<,BP`'C0L`"`V+``B3J[^S@@L``$`+&<$85Y@`F$2(DXL>0````1.V
- XMKOYB3-]__TYU."P`'#HL`!X\!#XL`"`V+``B80`![&$``]YF*E)$N$=E\&$`W
- XM`=Q21;I#8AIA``'280`#Q&804T2X1F+P80`!PE)%ND-CS$YU,"P`'@!`P`!(2
- XM0#`L`!QA#F8&80`$PF;V80`$R$YU2.?_`#@`2$`Z``)%/_\V``)#P`!A``$HX
- XM2D!J1#P$/@4T`R)-(`0B!6$``WIA1")-(`0B!6$``Y)A``-69B:\1&;JOD5F>
- XMYK1#9N(B32`$(@5.KO["(DU.KOZJ(DUA``0D<`!@"")-80`$&G#_3-\`_TYU(
- XM2.>C`&$``2(T`#P$/@5A?&$``1:T0&<P2D-J!`I#0``&0T``:@0*0T``2D!KN
- XM%$J`:Q`P!8!#"D#``$A`,`1A``0,.`8Z!V`^/`0^!6%>80``V+1`9QY*0&L4B
- XM2H!K$#`%@$,*0,``2$`P!&$``^`X!CH'8!)*0VH$"D-```9#P`!J!`I#0`!,0
- XMWP#%3G5*0VL."`,`#F8$4T5.=5-$3G4(`P`.9@121$YU4D5.=4I#:PX(`P`.Z
- XM9@121$YU4T5.=0@#``YF!%)%3G531$YU+P-V`%-$81Z&0%1$81B&0%-$4T5A`
- XM$(9`5$5A"H9`4T4P`R8?3G5(YT#`<`"X;``<922X;``@8AZZ;``>91BZ;``BH
- XM8A(B32`$(@5.KO["#$```&8"</],WP,"3G5(YW/`=`!P_[AL`!QE``"DN&P`R
- XM(&(``)RZ;``>90``E+IL`")B``",-@0\`\SL``Q(1CP\``#&[``.W(/<K``$_
- XM:P0T/$``(DT@!"(%3J[^P@C``!\,0```9E@V!3X#SNP`$$A'/CP``,;L`!+>W
- XM@T2'WJP`"#8L`"A50VH"=@!A0`Q#__]G$`*#``#__X;L`"I(0U1#8`0V/``!A
- XM,`,B34ZN_JHP!#(%(DU.KOZ\,`,(@``?#$```6<"@$),WP/.3G4(+````"QGN
- XM``"T2.?O`"@&*@<(+``"`"QG""PL`!0N+``8(`1A3B0!T(!I0"`%8430@&DX,
- XM(`'0@FDRE('4AFDN(`0B!6$PTH%I)-*':2`J`2@"4<O_SB`$81HD`="`:0P@9
- XM!6$0T(!I!-*":`)20TS?`/=.=2(`2.<\`"0`:@)$@$J!:@1$@4:"-@'&P'H=F
- XMZJM(0#@!R,!Z#>JLUH1(03@!R,#GC-:$2$#"P.JIUH%*@FH"1(,B`TS?`#Q.Y
- XM=4CG[P!(1DA'.`8Z!P@L``(`+&<(/"P`%#XL`!@P!#(`P\#G@4A!-`'00&E&,
- XM,`4R`,/`YX%(0=!`:3@P`=!":3*40=1&:2XP!#(%P\#G@4A!TD%I(-)':1PZ#
- XM`3@"4<O_OLO%R<38A6D*V(38A&D$V(1H`E)#3-\`]TYU2.>`@"`L`"1G!"!`0
- XM3I!,WP$!3G4SP```'\`SP0``'\(SP```'[PSP0``'[Y".0``'\1.KO\$3G5(\
- XMYS``849*.0``'\1J+#0`-@$P.0``'[PR.0``'[XSP```'\`SP0``'\).KO[^0
- XM,`(R`T(Y```?Q&$2,\```!^\,\$``!^^3-\`#$YU-#D``!_`-CD``!_"E$"67
- XM04I":@1$0D1#2D-J!$1"1$-*0F<::@C60F8@=`1@'DI#9PBV0F84=`)@$G0!N
- XM8`Y*0V<$=`-@!G0`8`)T_Q8Y```?Q&<22@)G%+8"9Q`3_`#_```?Q$YU$\(`V
- XM`!_$3G4O"3`Y```?O#(Y```?ODZN_OXB7TZN_OA.=0```````````&=R87!HJ
- XM:6-S+FQI8G)A<GD`3G%.^0```&A.^0````!.^0```+1P80```^P````7````I
- XM````&@X``![&```>S```'M(``![8```>W@``'O```![\```?`@``'P@``!\.U
- XM```?'```'R0``!\J```?-@``'SP``!^"```?E```'YP``!^F```?K```!(P`F
- XM``)"````/`````$```""````R@```/@```$F```"8@```IH```*@```"[```\
- XM`PH```,N```#-````VH```..```#E````YX```/$```$H```!20```7P```&Z
- XM0```!UP```>:```(_```"18```DH```).@``"4P```HX```*/@``"D0```I*<
- XM```*5@``"F0```IR```*@```#F8```ZN```.]@``#V@```^>```0'```$"H`2
- XM`!"````0C@``$)0``!.(```3K@``%!X``!0D```5Y```%B0``!:\```6P@``U
- XM%OX``!<$```8T```&.@``!EJ```9<@``&8P```$%`````P```"(````X````M
- XM0````%@```!N````?````(X```"P````N@```-8```$$```!+@```5@```%V4
- XM```!I````:X```&V```!U@```>H```'R```!^````?X```($```"#@```A@`H
- XM``(B```"+````E(```)T```"@````I````+(```"X````P0```-4```#<```M
- XM`WP```."```#J@```[````/,```#[````_(```/\```$"```!"@```0R```$(
- XM0@``!%(```18```$=@``!(````2$```$D@``!*8```2P```$N@``!,(```3(^
- XM```$T@``!-P```3N```$^```!0X```4<```%+@``!30```58```%8```!>@`S
- XM``7Z```&````!A@```8@```&,@``!C@```90```&6@``!F8```9P```&>@``7
- XM!H0```:*```&E```!IH```:H```&L```!KP```;$```&S@``!N0```;Z```')
- XM````!PH```<4```'*```!S(```<\```'1@``!TX```=4```'?```!X(```>0W
- XM```'L@``!\P```?6```'Z@``!_H```@(```(#@``"!@```@>```()```""P`G
- XM``@R```(.```"$````A&```(3```"%0```A:```(8```"&@```AN```(=```L
- XM"'P```B:```(I```"*X```BT```(P@``",@```C0```(U@``"-P```CV```)_
- XM`@``"5H```EB```):```"7````F"```)B@``"AP```HB```**```"BX```JR0
- XM```*Q@``"MH```KN```+!```"PH```L0```+%@``"RH```M6```+>@``"X``R
- XM``O8```+W@``"_P```P"```,(```#"8```P\```,0@``#'0```Q^```,A```O
- XM#(X```R4```,T@``#-@```SB```,Z```#08```U$```-9@``#7````UZ```-&
- XMJ```#:X```VT```-V@``#>````WF```."```#@X```XL```.,@``#F````Y^1
- XM```.J```#L8```[P```/`@``#S````\X```//@``#T@```]B```/=```#Y@`>
- XM``^J```/Q@``#]```!`.```0%```$'(``!!X```0F@``$28``!%(```13@``2
- XM$70``!%^```1O```$<8``!',```1^@``$@```!(2```2&```$BH``!)*```2J
- XM4```$F```!)F```2=```$GH``!*4```2F@``$J0``!*J```2N```$KX``!+XT
- XM```2_@``$Z0``!2X```4T```%.P``!5*```55```%6@``!6````5J@``%EX`$
- XM`!>(```7D@``%Z(``!>P```8B```&/8``!EX```9A@``&:0``!GP```9^@``_
- XM``,````$```?X```'^8``!_:`````````_(```/J```$'B`````#,S,S`%'K`
- XMA0`(,28``-&W```4^````A@````U````!0``````````````````````````,
- XM````````````````,S,S,QZX4>OI>-3]%UCB&;6(XVC>]!:]K^4U>5YCN(R)W
- XM<%]!#;YO[`%?U_X`(R\S``.$N```6A(```D!M0771>K!]27ZA/T^_I[_3_^G)
- XM_]3_ZO_U__K__?____]J"C!P%RP+5@6;`LH!9`"R`%D`+``6``L`!@`#``$`,
- XM`0B(```/``\P#V`/D`_`#_`,\`GP!O`#\`#P`/,`]@#Y`/P`_P#/`)\`;P`_"
- XM``\##P8/"0\,#P\/#PP/"0\P,``````4`!```%`0(````/````````"\X`3
- XM``````````%``0`!`@``!!@``QL```````````````````````````#_____[
- XM_____P`/`!0`%`"4`%`!`@``!F```P`*```!?`````````````````````#_)
- XM_________P`/```!X``G``T`:``(`````P`$```"1`````````',````````G
- XM`:A```````````N2``````````T````````````````````````````````!4
- XM`@``__8```````````O$`````````F@`)P`:`&@`"`````,`!````D0`````N
- XM```",`````````(,0`$````````+GP`````````-````````````````````X
- XM`````````````0(``/_V```````````+Q@````#__O_^`0``!0```E0`````?
- XM``````!K````:P`+````"P````````*4``H`"P`+``8`!``#``$```;`````V
- XM```````````````````!`````````L``"@`>``L`!@`$``,``0``!M0`````>
- XM````````````````@`$````````"[``#`!(`!@`+``0``P`!```&Z```````+
- XM``````````````"```````````,8`!8`$@`&``L`!``#``$```;\````````>
- XM`````````````````````````Z``%P`J`"@`"`````,`!````WP````````#=
- XM:`````````-$0`(````````+K``````````)````````````````````````Q
- XM`````````0(``/_N```````````+R`````#__O_^`0``!0```XP`````````2
- XM```K````*P`+````"P````````/,``X`*``&``L`!``#``$```;H````````X
- XM```````````````"`````````_@`0@`H``8`"P`$``,``0``!OP`````````"
- XM````````````@`(````````$@``7`#<`*``(```$`P`$```$7`````````1([
- XM````````!"1``P````````NU``````````D`````````````````````````T
- XM```````!`@``_^X```````````O*`````/_^__X!```%```$;```````````U
- XM`"L````K``L````+````````!*P`#@`U``8`"P`$``,``0``!N@`````````F
- XM``````````````,````````$V`!"`#4`!@`+``0``P`!```&_```````````Q
- XM``````````"``P````````5@`!L`1``@``@```0#``0```4\````````!2@`H
- XM```````%!$`$````````"[X`````````!@``````````````````````````<
- XM``````$"``#_Z@``````````"\P`````__[__@$```4```5,````````````4
- XM(P```",`"P````L````````%C``2`$(`!@`+``0``P`!```&Z```````````(
- XM``````````"`!`````````6X`#X`0@`&``L`!``#``$```;\````````````<
- XM```````````$````````!>0`20`H`"``#``&``(``0``!Q````<D````````5
- XM````````(`4````````&$`!)`#4`(``,``8``@`!```'.```!TP``````````
- XM```````@!@````````8\`$D`0@`@``P`!@`"``$```=@```'=```````````*
- XM`````"`'````````!F@`:@`H`!,`&0`&``(``0``![````?$````````````>
- XM````$`@````````&E`!^`"@`$P`9``8``@`!```'B```!YP`````````````_
- XM```0"0```````````&H`0@`G``P`!@`#``$```?8```'[```````````````4
- XM```*````````````"P`&``4``````P`````````````+``8`!0```!@#````4
- XM``````````8`"P`%````,`,`````````````!@`+``4```!<`P``````````^
- XM```@``P`!0```(@!`````````````"``#``%````B`,`````````````(``,B
- XM``4```#H`0`````````````@``P`!0```.@#`````````````"``#``%```!\
- XM2`$`````````````(``,``4```%(`P`````````````3`!D`!0```G`!````J
- XM`````````!,`&0`%```"<`,`````````````$P`9``4```&H`0``````````!
- XM```3`!D`!0```:@#`````````````"<`#``%```#.`$`````````````)P`,$
- XM``4```,X`P```````````!\``@(```@0```(&/_V````"@```````!\``@(``
- XM``@H````````__8````*`````!\``@,```A```````````H```````H`````O
- XM```?``(#```(7``````````*`````/_V````````'P`"`P``"'@```````#_J
- XM]@``````"@```````!\``@,```B4````````__8`````__8````````?``(#.
- XM```(L```"+P`!0`%```````%__L`````'P`"`@``",P```````$````*````'
- XM````'P`"`P``".0```CP__L`!0````#_^__[`````!\``@(```D``````/__E
- XM``#_]@```````!\``@,```D8```))/_[``4```````4`!0`````?``("```)<
- XM-``````````!````"@`````?``(#```)3```"5C_^__[```````%__L`````,
- XM'P`"`@``"6@```````#__P``__8!`@$```$``0````````O9````````%X``(
- XM`!>:```7J@``&"(``!@P```80```&%```!A:```8:@``&'H``!B$```8C@``\
- XM&,Y864U)3$A!0U=01TI3````%X```!>:```7J@``&"(``!B@```8M```&/P`K
- XM`!C.6`!9`$T`20!*6`!*60!&3$%'4P!3059%``````HL```*+0``"DX```IO,
- XM```*B```"J$```J^```*_P``"RT```M,```+=0`Z($-O=6QD(&YO="!A;&QOG
- XM8V%T92!S:6=N86P@8FET"@`Z($5R<F]R(&EN(&-O;6UA;F0@;&EN92!O<'1IB
- XM;VYS"@`Z($-O=6QD(&YO="!O<&5N('-C<F5E;@H`.B!#;W5L9"!N;W0@;W!E^
- XM;B!W:6YD;W<*`#H@0V]U;&0@;F]T(&%L;&]C871E(&UE;6]R>0H`.B!9;W4@1
- XM;F5E9"!I9F8N;&EB<F%R>2!I;B!Y;W5R(&QI8G,Z(&1I<F5C=&]R>2!T;R!S)
- XM879E('!I8W1U<F5S"@`Z(&EF9BYL:6)R87)Y(')E='5R;F5D(&5R<F]R(&]N7
- XM('-A=F4@8V]M;6%N9`H`.B!#;W5L9"!N;W0@;W!E;B!I8V]N+FQI8G)A<GD*B
- XM`#H@0V]U;&0@;F]T(&-H96-K(&EC;VX@*&9O<B!T;V]L('1Y<&5S*0H`.B!%]
- XM<G)O<B!I;B!T;V]L='EP92!O<'1I;VYS"@`K,"XP,#`P,#`P,#``*S`N,#`PD
- XM,#`P,#`P`#`P+C`P,#`P`"LP+C`P,#`P`#`P,#`P`'@`>0!-`%H`:0!-86YD(
- XM96Q"<F]T`"LP+C`P,#`P,#`P,"`K,"XP,#`P,#`P,#``9W)A<&AI8W,N;&EBP
- XM<F%R>0!I;G1U:71I;VXN;&EB<F%R>0!D;W,N;&EB<F%R>0!I8V]N+FQI8G)A.
- XM<GD`:69F+FQI8G)A<GD`=&EM97(N9&5V:6-E``I4:&ES('!R;V=R86T@9')A3
- XM=W,@=&AE($UA;F1E;&)R;W0@86YD($IU;&EA('-E=',@*'H@+3X@>K(@*R!CA
- XM*0IU<VEN9R!A('-M87)T(&-O;G1O=7(M8W)A=VQI;F<@;65T:&]D(&%N9"!F)
- XM87-T(#,R+6)I="!F:7AE9"!P;VEN="!M871H+@I!=71H;W(Z($AA;FYU(")TR
- XM:&4@1$TB($AE;&UI;F5N"@I&<F5E;'D@9&ES=')I8G5T86)L92!V97)S:6]N?
- XM(#$N,#`*"B!Z(#T@('@@*R`@>2!I(&ES('1H92!C96YT97)P;VEN="!O9B!T@
- XM:&4@<V5T"B!C(#T@:G@@*R!J>2!I(&ES(&$@8V]N<W1A;G0@;VYL>2!F;W(@L
- XM2G5L:6$@<V5T<PH@;2!I<R!M86=N:69I8V%T:6]N+"`U("T@,CD@*&QO9R!S6
- XM8V%L92D*(&D@:7,@=&AE(&UA>&EM=6T@;G5M8F5R(&]F(&ET97)A=&EO;G,LX
- XM(&D@/#T@-C4U,S4*4V%V92!P:6-T=7)E<R!T;R!F:6QE;F%M92!B>2!#5%),F
- XM+5,*"D9L86=S.B`M;"!L;W<@("`@+6@@:&EG:"`@+6$@875T;R!P<F5C:7-IQ
- XM;VX*("`@("`@("UC(&-R87=L("`M=R!W86QK("`M<"!C<F%W;"!I9B!P;W-SM
- XM:6)L90H@("`@("`@+7@@97AI="`@("UG('5S92!'54D*("`@("`@("UJ(&IUK
- XM;&EA("`M;2!M86YD96QB<F]T"@I5<V%G93H@;6%N9&5L("!O<B`@;6%N9&5L^
- XM(#\*("`@;W(@(&UA;F1E;"![+7@;6S1M>!M;,&T@+7D;6S1M>1M;,&T@+6T;[
- XM6S1M;1M;,&T@+6D;6S1M:1M;,&T@+6PM:"UA("UC+7<M<"`M>"UG("UJ+6T*&
- XM("`@("`@("`@("`@("`@+6IX&ULT;6IX&ULP;2`M:GD;6S1M:GD;6S!M("USX
- XM&ULT;3QF:6QE;F%M93X;6S!M?0IC;VXZ,"\U,"\V-#`O,3`P+R!M86YD96P@3
- XM(&)Y($1-("`Q.3DP(`!M86YD96PN<&EC='5R90``````````````````````Z
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM````````````````````````#W(```/L````%0````````F$```)B```"8P`X
- XM``F0```)E```"9@```F<```)H```":0```FH```)K```";````FT```)Q@``]
- XM"<H```G.```)T@``"=8```G:```)W@``">(```!I`````0```10```%>```!X
- XM?````8X```&6```!G@```:@```'8```!X````?(```'Z```"`@```@P```(\B
- XM```"3````F@```)Z```"E````J8```+````"T@```NP```+^```#&````RH`^
- XM``,R```#.@```T0```-T```#A````Z````.R```#S````]X```/X```$"@``(
- XM!!(```0:```$)```!%0```1D```$@```!)(```2L```$O@``!-@```3J```$V
- XM\@``!/H```4$```%-```!40```5@```%<@``!8P```6>```%N```!<H```7.J
- XM```%Y```!?8```7Z```&$```!B(```8F```&/```!DX```92```&:```!GH`I
- XM``9^```&I@``!JH```@(```(#```""````@X```(5```"'````B,```(J```$
- XM"*P```C$```(W```".````CX```)$```"10```DL```)1```"4@```E@```)'
- XM?```"@````H$```*"```"@P```H0```*%```"A@```H<```*(```"B0```HH&
- XM```0=````!`````"```&R@``!MX```;R```'!@``!QH```<N```'0@``!U8`+
- XM``=J```'?@``!Y(```>F```'N@``!\X```?B```']@````````/R0``#Z@``:
- XM`/($``H`$0`@@$!`_^````0`#@`?`#^```#_X$I`((`1``H`!````#^`'P`.4
- XM``0````$``P`%``D`$0`A`!$`"0`%``,``0```````@`&``X`'@`.``8``@`(
- XM`````(``P`"@`)``B`"$`(@`D`"@`,``@```````0`!@`'``>`!P`&``0```,
- XM``````````````````/\<B4"!!57`F0E50>4154'E'(E`F0```($```#_```Z
- XM````````______________P#C=K\`^JH_`/:JO@#NJKX`XW:_`/___P#___\G
- XM`___________````````!_P```0$9G5^A%551`16=42$55=$!&551(0``$?\A
- XM``!`@```?X``````________^`/___@#F8J``ZJJ@`.IBH`#JJB``YJJ@`/_[
- XM_X`#__^`?___@'______``````````````.<9S=S#%1$(I1F)B``5!0@`%=GT
- XM(I0```,,```#G```````````______________QCF,B,\ZN[W6N9V=__J^O?+
- XM_ZB8W6O___SS___\8___________```````````KLP``.JJ``"NJ@``JJH``T
- XM*JL`````````````````````````$````&P```""```&@@``"0(``#@$```)K
- XM`@``!H(```""````;````!```````````````````/__X`#__^``U$S@`,55>
- XM8`#456``U55@`-54X`#__^``___@`/__X`#__^``_^_@`/^3X`#_?>``^7W@F
- XM`/;]X`#'^^``]OW@`/E]X`#_?>``_Y/@`/_OX`#__^``___@`/__X```````4
- XM`````!5%P``514``%47``%5%0`!W=4````````````````````````>````(C
- XM0```&"````0@```$$````A````((```!!@```(0```!X````````````````/
- XM````````___@`/__X`#JNB``ZKJ@`.JZ(`"JNJ``B(J@`/__X`#__^``___@8
- XM`/__X`#X?^``][_@`.??X`#[W^``^^_@`/WOX`#]]^``_OG@`/][X`#_A^``L
- XM___@`/__X`#__^``___@``````````````````````_P`#JN``@0`"JD``I0?
- XM`"JD``F0`"JD``F0`#ND``I0``@```@0``````_P`````````````````/__D
- XM___^`/_____^`/____`.`,51__`.`-5;__`.`-5;__`.`-5;__`.`,1;__`.G
- XM`/?___`.`/____`.`/_____^`/_____^`````_(```/K````1P```_(```/IM
- XM````/$CGX.(D`"!Y````Z"`(9@IA*F<B(\@```#L#&@$```&90@D2&$69PXD\
- XMB#`H``8A@@``6&@`!DS?1P=.=2`\```$`'(`+'@`!$ZN_SI*@&<6($!"D#%\@
- XM``@`!#%\``@`!B/(````Z$YU2.=@XB1Y````['#_(@IG-EAJ``0P*@`$)#(`)
- XM_+!J``9F(")*)%$@/```!``L>``$3J[_+B/*````[&8&0KD```#H(`)R_TS?:
- XM1P9.=4CGP.(D>0```.PL>``$(DH@"F<.)%$@/```!`!.KO\N8.Q"N0```.A",
- XMN0```.Q,WT<#3G4``````````````^P````)````!`````@````6````8@``9
- XJ`&X```">````I@```+H```#8````W@````````/R```#Z@````````/RY
- X``
- Xend
- Xsize 15792
- END_OF_FILE
- if test 22144 -ne `wc -c <'mandel.uu'`; then
- echo shar: \"'mandel.uu'\" unpacked with wrong size!
- fi
- # end of 'mandel.uu'
- fi
- if test ! -d 'source' ; then
- echo shar: Creating directory \"'source'\"
- mkdir 'source'
- fi
- if test -f 'source/gui.asm.ae' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/gui.asm.ae'\"
- else
- echo shar: Extracting \"'source/gui.asm.ae'\" \(546 characters\)
- sed "s/^X//" >'source/gui.asm.ae' <<'END_OF_FILE'
- X* This one for RightButton.
- Xtmpx ds.w 1
- Xtmpy ds.w 1
- X
- X* Huh! My very own structure.
- XMyMandelBrot:
- X ds.b mb_SIZEOF
- XMyTmpRas: ds.b tr_SIZEOF
- XMyAreaInfo: ds.b ai_SIZEOF
- XIOreq: ds.b IOTV_SIZE
- XMsgPort: ds.b MP_SIZE
- X
- Xinter: ds.b 1 ; Boolean: are we interactive
- Xerror: ds.b 1 ; general error code
- Xmethod: ds.b 1 ; method of zooming (ZOOM, REDRAW or RESET)
- Xisdrawn: dc.b 1 ; Boolean: is grid drawn?
- Xsaveit: dc.b 1 ; Boolean: do we have to save picture?
- X end
- X
- END_OF_FILE
- if test 546 -ne `wc -c <'source/gui.asm.ae'`; then
- echo shar: \"'source/gui.asm.ae'\" unpacked with wrong size!
- fi
- # end of 'source/gui.asm.ae'
- fi
- if test -f 'source/iff.i' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/iff.i'\"
- else
- echo shar: Extracting \"'source/iff.i'\" \(1448 characters\)
- sed "s/^X//" >'source/iff.i' <<'END_OF_FILE'
- X* Assembler include file for the iff library
- X* by Christian A. Weber, Zurich/Switzerland V16.1 01-Dec-88
- X
- X XREF _IFFBase
- X
- XIFFVERSION: EQU 16
- X
- XIFF: MACRO
- X movea.l _IFFBase,a6
- X jsr %1(a6)
- X ENDM
- X
- X
- X*************** L I B R A R Y - O F F S E T S ****************************
- X
- XOpenIFF: equ -30 ; (filename) (A0)
- XCloseIFF: equ -36 ; (ifffile) (A1)
- XFindChunk: equ -42 ; (ifffile,chunkname) (A1,D0)
- XGetBMHD: equ -48 ; (ifffile) (A1)
- XGetColorTab: equ -54 ; (ifffile,colortable) (A1/A0)
- XDecodePic: equ -60 ; (ifffile,bitmap) (A1/A0)
- XSaveBitMap: equ -66 ; (name,bmap,ctab,crmd) (A0-A2,D0)
- XSaveClip: equ -72 ; (name,bmap,ctab,crmd,x,y,w,h) (A0-A2,D0-D4)
- XIffError: equ -78 ; () ()
- XGetViewModes: equ -84 ; (ifffile) (A1)
- XNewOpenIFF: equ -90 ; (filename,memtype) (A0,D0)
- X
- X
- X*************** F E H L E R - C O D E S **********************************
- X
- XIFF_BADTASK: equ -1 ; Fehler-Abfrage von falschem Task!
- X
- XIFF_CANTOPENFILE: equ 16 ; Datei existiert nicht
- XIFF_READERROR: equ 17 ; Fehler beim Einlesen der Datei
- XIFF_NOMEM: equ 18 ; zuwenig Speicher um Datei zu laden
- XIFF_NOTIFF: equ 19 ; Datei ist kein IFF-File
- XIFF_WRITEERROR: equ 20 ; Fehler beim schreiben
- X
- XIFF_NOILBM: equ 24 ; kein ILBM-File
- XIFF_NOBMHD: equ 25 ; BMHD-Chunk nicht gefunden
- XIFF_NOBODY: equ 26 ; BODY-Chunk nicht gefunden
- XIFF_TOOMANYPLANES: equ 27 ; Bild hat mehr Planes als BitMap
- XIFF_UNKNOWNCOMPRESSION: equ 28 ; Unbekannter Kompressions-Typ
- X
- END_OF_FILE
- if test 1448 -ne `wc -c <'source/iff.i'`; then
- echo shar: \"'source/iff.i'\" unpacked with wrong size!
- fi
- # end of 'source/iff.i'
- fi
- if test -f 'source/macros.i' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/macros.i'\"
- else
- echo shar: Extracting \"'source/macros.i'\" \(349 characters\)
- sed "s/^X//" >'source/macros.i' <<'END_OF_FILE'
- X* \0 should be the suffix. Hope this works.
- X
- Xbhs macro
- X bcc.\0 \1
- X endm
- X
- Xblo macro
- X bcs.\0 \1
- X endm
- X
- Xpush macro
- X movem.l \1,-(sp)
- X endm
- X
- Xpull macro
- X movem.l (sp)+,\1
- X endm
- X
- XBase macro
- X move.l _\1Base,a6
- X endm
- X
- XCall macro
- X xref _LVO\1
- X jsr _LVO\1(a6)
- X endm
- X
- END_OF_FILE
- if test 349 -ne `wc -c <'source/macros.i'`; then
- echo shar: \"'source/macros.i'\" unpacked with wrong size!
- fi
- # end of 'source/macros.i'
- fi
- if test -f 'source/mbrot.i' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/mbrot.i'\"
- else
- echo shar: Extracting \"'source/mbrot.i'\" \(1659 characters\)
- sed "s/^X//" >'source/mbrot.i' <<'END_OF_FILE'
- X
- X IFND EXEC_TYPES_I
- X INCLUDE "exec/types.i"
- X ENDC
- X
- X* signed 32-bit fixed point, scaled by 2^29 (range -4 .. 4)
- XFIXED MACRO
- X LONG \1
- X ENDM
- X
- X STRUCTURE mbrot,0
- X
- X* Rastport image will be drawn to
- X APTR mb_RastPort
- X
- X* These define z = x0 + y0 i that will be mapped to upper lefthand
- X* corner of Rastport (that is (0,0) NOT (x1,y1))
- X FIXED mb_x0
- X FIXED mb_y0
- X
- X* Deltas in both directions, i.e. how much to increment z for each pixel
- X FIXED mb_dx
- X FIXED mb_dy
- X
- X* If this is actually a Julia set, this is the c = jx + jy i
- X FIXED mb_jx
- X FIXED mb_jy
- X
- X* (x1,y1)-(x2,y2) rectangle within rastport to fill with mandelbrot
- X UWORD mb_x1
- X UWORD mb_y1
- X UWORD mb_x2
- X UWORD mb_y2
- X
- X* Pointer to a call-back procedure (or NULL) that should return
- X* with Z clear (result nonzero) if some kind of break condition is met
- X APTR mb_break
- X
- X UWORD mb_i ; max. number of iterations, 0<= i <=65533
- X UWORD mb_colors ; number of colors used in colouring OUTSIDE
- X UBYTE mb_flags ; see below
- X BYTE mb_pad
- X LABEL mb_SIZEOF
- X
- X* Flags for mb_flags
- X BITDEF MB,HIGH,0 ; 32 bit precision enabled
- X BITDEF MB,CRAWL,1 ; crawling enabled
- X BITDEF MB,JULIA,2 ; this is actually a Julia set
- X BITDEF MB,AUTOPREC,3 ; automatic precision (16/32 bits, ignore HIGH)
- X BITDEF MB,AUTOCRAWL,4 ; automatic crawling when adequate, ign. CRAWL
- X
- X* Limit for AUTOPREC
- XDELTALIMIT EQU $40000
- X
- X* PIXEL color defines
- XCLEAR EQU 0 ; the color (x1,y1)-(x2,y2) is cleared to
- XINTERIOR EQU 1 ; inside the set
- XFIRST EQU 2 ; outside the set
- X
- END_OF_FILE
- if test 1659 -ne `wc -c <'source/mbrot.i'`; then
- echo shar: \"'source/mbrot.i'\" unpacked with wrong size!
- fi
- # end of 'source/mbrot.i'
- fi
- if test -f 'source/pipe.asm' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/pipe.asm'\"
- else
- echo shar: Extracting \"'source/pipe.asm'\" \(4315 characters\)
- sed "s/^X//" >'source/pipe.asm' <<'END_OF_FILE'
- X
- X* This file: pipe v0.01
- X
- X* (c) 1990 by The DM
- X
- X XDEF f_push
- X XDEF f_pull
- X XDEF f_clear
- X
- X XREF _LVOAllocMem
- X XREF _LVOFreeMem
- X
- XMAXDEPTH EQU 254
- X
- X SECTION pipe,CODE
- X
- X* error = f_push(value)
- X* Z d0
- X
- X* Will push d0.l to dynamically allocated linked list of memory
- X* that represents pipe (fifo). Pointers _Head and _Tail should be
- X* initialized to 0 before first call. Define MAXDEPTH to # of
- X* longwords to be stored in one chunk of memory.
- X* If Z is set (result zero) no memory was left.
- X
- X* All registers are preserved.
- X
- X* Structure:
- X*
- X* LONG next ; points to previous structure
- X* WORD used ; offset from beginning, points to 1st used long.
- X* WORD free ; offset from beginning, points to 1st free long.
- X* LONG data [0] ; 1st longword of data
- X* ...
- X* LONG data [MAXDEPTH-1]
- X
- X
- Xf_push:
- X movem.l a0-a2/a6/d0-d2,-(a7)
- X move.l d0,d2
- X move.l _Head,a0
- X move.l a0,d0
- X bne.s 1$
- X
- X* This is first time we are called so
- X bsr.s _push1
- X beq.s 3$ ; error, no memory
- X move.l a0,_Tail ; this pointer also needs to be initialized
- X1$:
- X cmp.w #(MAXDEPTH*4)+4+2+2,6(a0)
- X bcs.s 4$
- X
- X* This hunk is full, allocate next one
- X move.l a0,a2
- X bsr.s _push1
- X beq.s 3$ ; error, no memory!
- X move.l a0,(a2) ; link hunks
- X4$:
- X move.w 6(a0),d0 ; free
- X move.l d2,0(a0,d0.w)
- X addq.w #4,6(a0) ; result is nonzero
- X3$: ; if brach here, result is zero
- X movem.l (a7)+,a0-a2/a6/d0-d2
- X rts
- X
- X* Here we allocate one block.
- X* nextblock/a0 , Z/error = _push1 ()
- X_push1:
- X move.l #(MAXDEPTH*4)+4+2+2,d0
- X moveq #0,d1
- X move.l $4,a6
- X jsr _LVOAllocMem(a6)
- X tst.l d0
- X beq.s 2$
- X
- X
- X move.l d0,a0
- X clr.l (a0) ; next field set to zero
- X move.w #8,4(a0) ; used initialized to 4 (offset)
- X move.w #8,6(a0) ; free initialized to 8 (offset)
- X move.l a0,_Head ; result is nonzero
- X2$: ; if branch here, result is zero
- X rts ; if error, Z will be set
- X
- X
- X* value = f_pull ()
- X* d0
- X
- X* Will pull d0.l from dynamically allocated linked list of memory
- X* that represents pipe. If client is trying to pull from empty
- X* pipe, -1 will be returned and Z will be set.
- X* Will automagically deallocate any memory.
- X
- X* NOTE: if you do not pull everything you have pushed, memory
- X* will be lost!
- X
- Xf_pull:
- X movem.l a0-a2/a6/d1-d2,-(a7)
- X move.l _Tail,a2
- X moveq #-1,d0
- X move.l a2,d1
- X beq.s 1$ ; Pipe is empty
- X
- X addq.w #4,4(a2)
- X move.w 4(a2),d0
- X move.l -4(a2,d0.w),d2 ; Pipe contains at least one value
- X* ^^ This is because I just accidentally incremented d0
- X
- X cmp.w 6(a2),d0 ; if used == free, time to free this block
- X bne.s 2$
- X
- X* Done with this block, deallocate it and move to next
- X move.l a2,a1
- X move.l (a1),a2
- X move.l #(MAXDEPTH*4)+4+2+2,d0
- X move.l $4,a6
- X jsr _LVOFreeMem(a6)
- X move.l a2,_Tail
- X bne.s 2$ ; if this was last block,
- X clr.l _Head ; clear _Head as well.
- X2$:
- X move.l d2,d0
- X moveq #-1,d1 ; this is surely nonzero
- X1$:
- X movem.l (a7)+,a0-a2/a6/d1-d2
- X rts
- X
- X
- X* f_clear ()
- X
- X* Will deallocate our pipe quickly, cleanly and completely in case there
- X* is no need to process the remaining stuff in the pipe.
- X
- Xf_clear:
- X movem.l a0-a2/a6/d0-d1,-(a7)
- X move.l _Tail,a2
- X move.l $4,a6
- X1$:
- X move.l a2,a1
- X move.l a2,d0
- X beq.s 2$
- X
- X* This block is valid, deallocate it & back up
- X move.l (a1),a2
- X move.l #(MAXDEPTH*4)+4+2+2,d0
- X jsr _LVOFreeMem(a6)
- X bra.s 1$
- X2$:
- X* Ups! Almost forget:
- X clr.l _Head
- X clr.l _Tail
- X movem.l (a7)+,a0-a2/a6/d0-d1
- X rts
- X
- X* In order to save space, these are right here in program segment...
- X
- X_Head: dc.l 0 ; initialized to zero!
- X_Tail: dc.l 0
- X END
- END_OF_FILE
- if test 4315 -ne `wc -c <'source/pipe.asm'`; then
- echo shar: \"'source/pipe.asm'\" unpacked with wrong size!
- fi
- # end of 'source/pipe.asm'
- fi
- echo shar: End of archive 1 \(of 4\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 4 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
- Mail comments to the moderator at <amiga-request@uunet.uu.net>.
- Post requests for sources, and general discussion to comp.sys.amiga.misc.
-